Driver Native Window (cdnative.h)

Este driver permite o acesso a um Native Window existente. Esta janela é um elemento básico do sistema de interface com o usuário.


Uso

O canvas é criado através de uma chamada à função cdCreateCanvas(CD_NATIVEWINDOW, Data), após o que outras funções da biblioteca CD podem ser chamadas normalmente. Esta função cria um canvas CD baseado em um canvas do sistema existente. O parâmetro Data é um ponteiro para um handle do canvas; ele é dependente do sistema, possuindo um significado diferente em cada plataforma:

Macintosh: (em construção)
Microsoft Windows: é o handle da janela ou, em C um HWND.
X-Windows: "display window" ou, em C, "%p %lu" (utiliza a tela padrão).

O string tem o mesmo formato do atributo IUP CONID, de modo que é possível criar um canvas utilizando este driver, porém com base em um canvas IUP. Assim, não é mais necessário utilizar o driver IUP. Por exemplo:

cdCreateCanvas(CD_NATIVEWINDOW, IupGetAttribute(myIupCanvas, "CONID")).
IupSetAttribute(myIupCanvas, "_CD_CANVAS", myCdCanvas);

Qualquer quantidade desses canvas pode existir simultaneamente, mas eles não devem empregar a mesma janela. Vale ressaltar que é necessário chamar a função cdKillCanvas para finalizar o driver de forma apropriada.

Em CDLUA, o parâmetro de criação deve ser uma string no X-Windows e um userdata no Microsoft Windows.

FALHA: no SunOS, use "%d" ao invés de "%p", devido a uma falha interna na biblioteca run time desse OS.


Funções Exclusivas deste Driver

void cdGetScreenSize(int *width, int *height, double *width_mm, double *height_mm); [em C]
cdGet
ScreenSize() -> (width, heigth, mm_width, mm_height: number) [em Lua]

Equivalente a função cdGetCanvasSize, mas retorna os valores relativos à tela principal do sistema de janelas.

int cdGetScreenColorPlanes(void); [em C]
cdGetScreenColorPlanes() -> (bpp: number) [em Lua]

Equivalente a função cdGetColorPlanes, mas retorna o valor relativo à tela principal do sistema de janelas.


Comportamento das Funções

O driver é amplamente dependente da plataforma. Para maiores detalhes, consulte o Comportamento das Funções de cada plataforma: Macintosh (QuickDraw), Microsoft Windows (GDI), X-Windows (XLIB). Entretanto, algumas funções têm um comportamento diferente das funções básicas de cada plataforma.

Funções de Controle